package org.grayrabbit.cms.plugin;

import java.io.InputStream;
import java.util.Collection;

/**
 * @author sys53
 * @version 1.0
 * @created 06-一月-2012 15:56:31
 */
public interface PluginAccessor {

	/**
	 * 
	 * @param pluginKey
	 */
	public Plugin getEnabledPlugin(String pluginKey);

	public Collection<Plugin> getEnabledPlugins();

	/**
	 * 
	 * @param pluginKey
	 */
	public Plugin getPlugin(String pluginKey);

	/**
	 * 
	 * @param pluginKey
	 */
	public InputStream getPluginResourceAsStream(String pluginKey);

	public Collection<Plugin> getPlugins();

	/**
	 * 
	 * @param pluginKey
	 */
	public boolean isPluginEnabled(String pluginKey);

	/**
	 * 
	 * @param pluginKey
	 */
	public boolean isSystemPlugin(String pluginKey);

	public ModuleDescriptor getPluginModule(String moduleCompleteKey);

	public boolean isPluginModuleEnabled(String moduleCompleteKey);

}